package cn.edu.csust.coursecard.service;


import cn.edu.csust.coursecard.dao.entity.Comment;
import cn.edu.csust.coursecard.dao.entity.Reply;
import cn.edu.csust.coursecard.dao.dto.CommentInfo;
import cn.edu.csust.coursecard.dao.dto.Message;
import cn.edu.csust.coursecard.dao.dto.ReplyInfo;

import java.util.List;

public interface ICommentService {
    
    /**
     * 发布评论
     */
    CommentInfo writeComment(Comment comment);
    
    /**
     * 发布回复
     */
    ReplyInfo writeReply(Reply reply);
    
    /**
     * 通过帖子id获取评论信息
     */
    List<CommentInfo> getCommentInfo(Integer postId);
    
    /**
     * 获取未读消息列表
     */
    List<Message> getUnreadMessage(Integer userId);
    
    List<Message> getHasReadMessage(Integer userId);
    
    /**
     * 查询帖子下面的评论
     */
    List<Integer> getCommentIdsByPostId(Integer postId);
    
    /**
     * 删除评论
     */
    void deleteComment(Integer postId,List<Integer> commentIds);
    
    void deleteReply(List<Integer> replyIds);
    
    /**
     * 通过id获取评论
     */
    Comment getCommentByPrimaryKey(Integer commentId);
    
    /**
     * 通过id获取回复
     */
    Reply getReplyByPrimaryKey(Integer replyId);
    
    /**
     * 设置消息已读
     * @param message
     */
    void setMessageToRead(Message message);
    
    /**
     * 设置全部消息已读
     */
    void setAllMessageToRead(Integer userId);
}
